home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Bank smakow / BankSmakow.air / BankSmakow.swf / scripts / com / makingwaves / sql / TransactionDatabaseManager.as < prev   
Text File  |  2009-12-16  |  6KB  |  171 lines

  1. package com.makingwaves.sql
  2. {
  3.    import com.makingwaves.config.Configuration;
  4.    import flash.data.SQLConnection;
  5.    import flash.data.SQLResult;
  6.    import flash.errors.SQLError;
  7.    import flash.events.SQLErrorEvent;
  8.    import flash.events.SQLEvent;
  9.    import flash.filesystem.File;
  10.    import flash.utils.Dictionary;
  11.    import mx.core.Application;
  12.    
  13.    public class TransactionDatabaseManager
  14.    {
  15.        
  16.       
  17.       private var initComplete:Boolean = false;
  18.       
  19.       private var _connection:SQLConnection;
  20.       
  21.       public function TransactionDatabaseManager()
  22.       {
  23.          super();
  24.          var _loc1_:File = File.applicationStorageDirectory.resolvePath(Application.application.name + ".db");
  25.          _connection = new SQLConnection();
  26.          _connection.addEventListener(SQLEvent.OPEN,onDatabaseOpen);
  27.          _connection.addEventListener(SQLErrorEvent.ERROR,errorHandler);
  28.          _connection.open(_loc1_);
  29.       }
  30.       
  31.       public function recordUpdate(param1:int) : void
  32.       {
  33.          var _loc2_:Configuration = Configuration.getInstance();
  34.          var _loc3_:StatementExecutor = new StatementExecutor(_connection);
  35.          var _loc4_:Dictionary;
  36.          (_loc4_ = new Dictionary())[":sourceId"] = param1;
  37.          _loc3_.execute(_loc2_.addUpdateSQL,_loc4_);
  38.       }
  39.       
  40.       private function errorHandler(param1:SQLErrorEvent) : void
  41.       {
  42.          trace("Error code:",param1.error.errorID);
  43.          trace("Details:",param1.error.message);
  44.       }
  45.       
  46.       private function onDatabaseOpen(param1:SQLEvent) : void
  47.       {
  48.          var s:String = null;
  49.          var statement:String = null;
  50.          var event:SQLEvent = param1;
  51.          var config:Configuration = Configuration.getInstance();
  52.          var executor:StatementExecutor = new StatementExecutor(_connection);
  53.          for each(s in config.createStatements)
  54.          {
  55.             executor.execute(s);
  56.          }
  57.          for each(statement in config.alterStatements)
  58.          {
  59.             try
  60.             {
  61.                executor.execute(statement);
  62.             }
  63.             catch(error:SQLError)
  64.             {
  65.             }
  66.          }
  67.       }
  68.       
  69.       private function checkRecipe(param1:String) : Boolean
  70.       {
  71.          var _loc2_:Configuration = Configuration.getInstance();
  72.          var _loc3_:StatementExecutor = new StatementExecutor(_connection);
  73.          var _loc4_:Dictionary;
  74.          (_loc4_ = new Dictionary())[":name"] = param1;
  75.          var _loc5_:SQLResult;
  76.          if((_loc5_ = _loc3_.execute(_loc2_.checkRecipeSQL,_loc4_)).data != null)
  77.          {
  78.             return false;
  79.          }
  80.          return true;
  81.       }
  82.       
  83.       public function commitTransaction() : void
  84.       {
  85.          if(_connection.inTransaction)
  86.          {
  87.             _connection.commit();
  88.          }
  89.       }
  90.       
  91.       public function addProduct(param1:int, param2:String, param3:int) : void
  92.       {
  93.          var _loc4_:Configuration = Configuration.getInstance();
  94.          var _loc5_:StatementExecutor = new StatementExecutor(_connection);
  95.          var _loc6_:Dictionary;
  96.          (_loc6_ = new Dictionary())[":id"] = param1;
  97.          _loc6_[":name"] = param2;
  98.          _loc6_[":categoryId"] = param3;
  99.          _loc5_.execute(_loc4_.addProductSQL,_loc6_);
  100.       }
  101.       
  102.       public function addRecipe(param1:String, param2:String, param3:String, param4:Array) : void
  103.       {
  104.          var _loc5_:Configuration = null;
  105.          var _loc6_:StatementExecutor = null;
  106.          var _loc7_:Dictionary = null;
  107.          var _loc8_:SQLResult = null;
  108.          var _loc9_:int = 0;
  109.          var _loc10_:int = 0;
  110.          var _loc11_:Dictionary = null;
  111.          if(checkRecipe(param1))
  112.          {
  113.             _loc5_ = Configuration.getInstance();
  114.             _loc6_ = new StatementExecutor(_connection);
  115.             (_loc7_ = new Dictionary())[":name"] = param1;
  116.             _loc7_[":ingredients"] = param2;
  117.             _loc7_[":preparation"] = param3;
  118.             _loc9_ = (_loc8_ = _loc6_.execute(_loc5_.addRecipeSQL,_loc7_)).lastInsertRowID;
  119.             for each(_loc10_ in param4)
  120.             {
  121.                (_loc11_ = new Dictionary())[":recipeId"] = _loc9_;
  122.                _loc11_[":productId"] = _loc10_;
  123.                _loc6_.execute(_loc5_.addRecipeIngredientSQL,_loc11_);
  124.             }
  125.          }
  126.       }
  127.       
  128.       public function getLastUpdate(param1:int) : Date
  129.       {
  130.          var _loc2_:Configuration = Configuration.getInstance();
  131.          var _loc3_:StatementExecutor = new StatementExecutor(_connection);
  132.          var _loc4_:Dictionary;
  133.          (_loc4_ = new Dictionary())[":sourceId"] = param1;
  134.          var _loc5_:Array;
  135.          if((_loc5_ = _loc3_.execute(_loc2_.getUpdateSQL,_loc4_).data) != null && _loc5_.length == 1)
  136.          {
  137.             return _loc5_[0].date;
  138.          }
  139.          return new Date(0);
  140.       }
  141.       
  142.       public function closeConnection() : void
  143.       {
  144.          _connection.close();
  145.       }
  146.       
  147.       public function rollbackTransaction() : void
  148.       {
  149.          if(_connection.inTransaction)
  150.          {
  151.             _connection.rollback();
  152.          }
  153.       }
  154.       
  155.       public function startTransaction() : void
  156.       {
  157.          _connection.begin();
  158.       }
  159.       
  160.       public function addCategory(param1:int, param2:String) : void
  161.       {
  162.          var _loc3_:Configuration = Configuration.getInstance();
  163.          var _loc4_:StatementExecutor = new StatementExecutor(_connection);
  164.          var _loc5_:Dictionary;
  165.          (_loc5_ = new Dictionary())[":id"] = param1;
  166.          _loc5_[":name"] = param2;
  167.          _loc4_.execute(_loc3_.addCategorySQL,_loc5_);
  168.       }
  169.    }
  170. }
  171.